Constant-envelope phase-optimized transmission methods and apparatus

ABSTRACT

Constant-envelope phase-optimized transmission methods and apparatus are disclosed. An example method includes determining initial values of modulation phases in a first quadrant, the modulation phases associated with binary codes to be transmitted; and optimizing the initial values to second values to enable a product of an objective function to be within a threshold value.

RELATED APPLICATION

This patent arises from a continuation-in-part of U.S. patent application Ser. No. 14/717,814 (now U.S. Pat. No. 9,614,705), filed May 20, 2015. Priority is claimed to U.S. patent application Ser. No. 14/717,814. U.S. patent application Ser. No. 14/717,814 is hereby incorporated herein by reference in its entirety.

FIELD OF THE DISCLOSURE

This disclosure relates generally to the Code Division Multiple Access Systems and, more particularly, to constant-envelope phase-optimized transmission methods and apparatus.

BACKGROUND

The Global Positioning System (GPS) is a space-based satellite navigation system that provides location and time information. In operation, the GPS transmits three binary phase shift key (BPSK) codes. To accommodate the transmission of three or more BPSK codes, in some examples, the component BPSK codes are combined into a composite code prior to being transmitted.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an example apparatus and an example receiver that can be used to implement the examples disclosed herein.

FIGS. 2-4 are flowcharts representative of methods that may be performed to implement the example apparatus and the example receiver of FIG. 1.

FIGS. 5-8 show results obtained using the examples disclosed herein.

FIG. 9 is a processor platform that may be used to implement the apparatus of FIG. 1 and the examples disclosed herein.

FIG. 10 is a processor platform that may be used to implement the receiver of FIG. 1 and the examples disclosed herein.

The figures are not to scale. Wherever possible, the same reference numbers will be used throughout the drawing(s) and accompanying written description to refer to the same or like parts.

DETAILED DESCRIPTION

The examples disclosed herein are associated with transmitters and/or satellites that combine binary spreading codes (e.g., pseudo random noise (PRN) sequences and/or pseudo random number sequences). The transmitters and/or satellites may be used for navigation purposes, ranging purposes, communications purposes, surveillance purposes, etc. In some examples, the examples disclosed herein can be used in connection with GPS satellites, binary signal combining and/or in connection with solid state power amplifiers (SSPAs).

Code division multiple access (CDMA) systems such as, for example, the Global Positioning System (GPS), can transmit binary phase shift key (BPSK) codes. To enable the transmission of two or more BPSK codes, in some examples, these BPSK codes are combined into a composite code prior to being transmitted. In some examples, the BPSK codes include code powers (e.g., a user-specified code powers) and the composite code is modeled using a constant envelope approach represented by an amplitude and modulation phases at a given time.

To combine BPSK codes into a composite code using the examples disclosed herein, in some examples, a constant envelope and a modulation phase constellation are estimated for transmitting multiple BPSK codes on the same carrier using an example constant-envelope phase-optimized transmission method and/or apparatus. In some examples, to reduce a dimension of a search space, to reduce cost and/or to increase an overall efficiency of determining the modulation phase constellation, the examples disclosed herein initially optimize and determine fundamental phases and/or modulation phases in one quadrant (e.g., first quadrant modulation phases) without, for example, optimizing and/or determining modulation phases in the remaining quadrants. In some examples, the modulation phases in the remaining quadrants are then constructed and/or determined using the optimized first quadrant modulation phases. For example, the modulation phases in the remaining quadrants can be determined using an example phase symmetry model that determines the remaining phases by reflecting and/or rotating the optimized fundamental phases relative to the complex (I-Q) plane. In some examples, fourth quadrant modulation phases are determined by reflecting the first quadrant modulation phases over a real axis and the second and third quadrant modulation phases are determined by rotating the determined first and fourth quadrant modulation phases relative to the complex (I-Q) plane.

As disclosed herein, in some examples, a composite code including component codes is determined based on the modulation phases of the first, second, third and fourth quadrants. The component codes contained in the composite code may be transmitted and later recovered having associated component code powers (decibels (dB)). In some examples, to enable the recovered component code powers to change (e.g., increase, decrease), a convergence parameter is included when determining the modulation phases. For example, the convergence parameter can be included and/or changed to meet certain implementation constraints. Some convergence parameters that may be used include values between about −0.5 and 0.5.

In some examples, modulation phases and amplitudes are determined using different convergence parameters and the recovered component code powers are compared to enable the recovered component code power(s) having the highest value to be identified. Once the recovered code power(s) having highest value is identified based on the comparison, subsequent modulation phases may be determined using the convergence parameter associated with the highest code power(s), for example.

FIG. 1 illustrates an example apparatus 100 that can be used to estimate a constant envelope and a modulation phase constellation for transmitting multiple BPSK codes on the same carrier. In some examples, the example apparatus 100 determines a constant amplitude and modulation phase values to satisfy user-specified code powers and code channel assignment requests and/or requirements. FIG. 1 also includes an example receiver 101 that can communicate with the apparatus 100 and identify a code power(s) having the highest value.

In some examples, to estimate a constant envelope and/or the modulation phase values, the apparatus 100 defines initial phase values using an initializer 102. In some examples, the initializer 102 uses Equation 1 to define a correlation model for a modulation phase value having a constant envelope transmission including a plurality of binary orthogonal codes on an I channel or a Q channel. For example, with reference to Equation 1, when considering a binary matrix B=[b₁ b₂ . . . b_(N)] that contains N binary orthogonal codes, b_(k)ϵ

² ^(N) ^(×1), k=1, . . . , N, with entries either +1 or −1, each row of the matrix, B, is represented by a modulation phase angle, modulation phase angle ϕ_(i)ϵ[−π, π], with i=1, . . . , 2^(N), and an amplitude Aϵ

⁺. As shown below in Equation 1, A corresponds to the amplitude, ϕ corresponds to the phase modulation vector and N corresponds to the number of codes. Still referring to Equation 1, b_(k) corresponds to the k^(th) binary orthogonal code and ϕ=[ϕ₁ϕ₂ . . . ϕ₂ _(N) ]^(T) corresponds to the phase constellation. In this example, the amplitude and the phase constellation are the parameters of the correlation model, y_(k)(A, ϕ), in the complex plane of the form of Equation 1. In Equation 1,

$\varphi \in \left\{ {0,\frac{\pi}{2}} \right\}$ is a code channel assignment parameter used to indicate the transmission channel of the kth code. Specifically, in this example, when φ_(k)=0, code k is transmitted using channel I and when

${\varphi = \frac{\pi}{2}},$ code k is transmitted using channel Q.

$\begin{matrix} {{{y_{k}\left( {A,\phi} \right)} = {{\frac{A}{2^{N}}b_{k}^{T}{c(\phi)}\cos\;\varphi_{k}} + {j\frac{A}{2^{N}}b_{k}^{T}{s(\phi)}\;\sin\;\varphi_{k}}}},{k = 1},\ldots\mspace{14mu},N} & {{Equation}\mspace{14mu} 1} \end{matrix}$

In some examples, to incorporate user-specified component code powers into the correlation model, y_(k)(A, ϕ), of Equation 1, the initializer 102 uses Equation 2, where the column vectors, c(ϕ), s(ϕ)ϵ

² ^(N) ^(×1), are defined in Equations 3 and 4 and P_(k) corresponds to the user-specified code powers.

$\begin{matrix} {{{{\frac{A}{2^{N}}b_{k}^{T}{c(\phi)}\cos\;\varphi_{k}} + {j\frac{A}{2^{N}}b_{k}^{T}{s(\phi)}\sin\;\varphi_{k}}} = {\sqrt{P_{k}}e^{j\;\varphi_{k}}}},{k = 1},\ldots\mspace{14mu},N} & {{Equation}\mspace{14mu} 2} \\ {\mspace{79mu}{{c(\phi)}\overset{\Delta}{=}\begin{bmatrix} {\cos\left( \phi_{1} \right)} \\ {\cos\left( \phi_{2} \right)} \\ \vdots \\ {\cos\left( \phi_{2^{N}} \right)} \end{bmatrix}}} & {{Equation}\mspace{14mu} 3} \\ {\mspace{79mu}{{s(\phi)}\overset{\Delta}{=}\begin{bmatrix} {\sin\left( \phi_{1} \right)} \\ {\sin\left( \phi_{2} \right)} \\ \vdots \\ {\sin\left( \phi_{2^{N}} \right)} \end{bmatrix}}} & {{Equation}\mspace{14mu} 4} \end{matrix}$

Equation 2 can be represented as Equation 5 after some terms are rearranged and the absolute values of the left and right sides of the rearranged Equation 2 are taken.

$\begin{matrix} {{{f_{k}(\phi)} = {\left\{ {\left\lbrack \frac{b_{k}^{T}{c(\phi)}\cos\;\varphi_{k}}{\sqrt{P_{k}}} \right\rbrack^{2} + \left\lbrack \frac{b_{k}^{T}{s(\phi)}\sin\;\varphi_{k}}{\sqrt{P_{k}}} \right\rbrack^{2}} \right\}^{\frac{1}{2}} = \frac{2^{N}}{A}}},{k = 1},\ldots\mspace{14mu},N,} & {{Equation}\mspace{14mu} 5} \end{matrix}$

To define an objective function, J(ϕ), which incorporates modulation phases and user-specified component code powers, the initializer 102 uses Equations 6 and 7.

Equation 6 is based on evaluating A=A*(ϕ) of Equation 5 and rearranging the terms of Equation 5. In this example, Equation 6 can be used to define the objective function, J(ϕ), of Equation 7. Referring to Equation 6, h_(k) (ϕ) corresponds to the ratio of the k^(th) magnitude equation, f_(k) (ϕ), relative to an average magnitude g (ϕ).

Referring to Equation 7, J(ϕ) refers to the objective function as a function of the phase modulation vector ϕ.

$\begin{matrix} {{{h_{k}(\phi)} = {\frac{f_{k}(\phi)}{g(\phi)} = 1}},{k = 1},\ldots\mspace{14mu},N} & {{Equation}\mspace{14mu} 6} \\ {{J(\phi)}\overset{\Delta}{=}{\sum\limits_{k = 1}^{N}\;{{{h_{k}(\phi)} - 1}}^{2}}} & {{Equation}\mspace{14mu} 7} \end{matrix}$

Equation 8 represents an optimized modulation phase vector.

$\begin{matrix} {\phi^{*} = {\underset{\phi}{argmin}\;{J(\phi)}}} & {{Equation}\mspace{14mu} 8} \end{matrix}$

After the user specified code powers and channel assignments have been defined by the apparatus 100, to begin the iterative process of optimizing modulation phase values, the initializer 102 uses a quadrature amplitude modulation (QAM) model as represented in Equation 9 to determine the initial phase values. Using Equation 9, in some examples, the initializer 102 specifies a rectangular grid Z_(QAM) of constellation points in the complex plane as a function of the user-specified code powers, P_(k) and code channel assignments, φ_(k) for k=1, . . . , N.

$\begin{matrix} {z_{QAM} = {{\sum\limits_{k = 1}^{N}\;{b_{k}\sqrt{P_{k}}\cos\;\varphi_{k}}} + {{jb}_{k}\sqrt{P_{k}}\sin\;\varphi_{k}}}} & {{Equation}\mspace{14mu} 9} \end{matrix}$

To determine the initial choice(s) and/or seed value(s) of the modulation phase values, the initializer 102 uses Equation 10, where Equation 11 represents the phase angle, ϕ_(i) ⁽⁰⁾, which is the phase angle associated with the i^(th) entry of the complex vector Z_(QAM). In some examples, data used and/or generated by the initializer 102 is stored at a data store 103. ϕ⁽⁰⁾=[ϕ₁ ⁽⁰⁾ϕ₂ ⁽⁰⁾ . . . ϕ_(2N) ⁽⁰⁾]^(T)  Equation 10: ϕ_(i) ⁽⁰⁾=arg z _(QAM) ^(i) , i=1, . . . , 2^(N)  Equation 11:

To optimize modulation phases in a quadrant (e.g., fundamental phases), the example apparatus 100 includes an optimizer 104. In some examples, using the initial values generated by the initializer 102, the apparatus 100 and/or the optimizer 104 optimizes phases obtained from QAM grid points in the first quadrant of the complex plane to aid in the determination of modulation phases in the remaining quadrants.

In this example, Equation 9 is structured such that each quadrant of the complex plane contains

$\frac{2^{N}}{4}$ of the QAM grid points. In this example, z^(i) _(QAM) is structured to enable grid points in the second, third and fourth quadrants to be determined (e.g., completely determined) based on grid points relative to the first quadrant. Thus, using the examples disclosed herein, the grid points and/or the modulation phases determined by the apparatus 100 in the first quadrant are used to determine the grid points and/or modulation phases in the remaining quadrants. In this example, the phases associated with the first quadrant of QAM grid points in the complex plane are referred to as fundamental phases and are represented by

$\theta_{\mu} = \left\lbrack {\theta_{\mu,1},\theta_{\mu,2},\ldots\mspace{14mu},\theta_{\mu,\frac{2^{N}}{4}}} \right\rbrack^{T}$ with

${\theta_{\mu,i} \in \left\lbrack {{- \pi},\pi} \right\rbrack},{i = 1},\ldots\mspace{14mu},{\frac{2^{N}}{4}.}$

In some examples, to begin the process of optimizing the modulation phases, the optimizer 104 iteratively searches for modulation phases within a quadrant (e.g., the first quadrant) and/or searches for a quarter of the modulation phases. In this example, the optimizer 104 obtains the initial choice and/or seed values of the modulation phases from the data store 103, a selector 105 selects a convergence parameter, μ, and the optimizer 104 optimizes the fundamental phase values for the first quadrant using Equation 12 and the selected convergence parameter. In some examples, by selecting different convergence parameters, μ, when optimizing the fundamental phase values using Equation 12, the convergence of the modulation phases can be depicted as shown in FIG. 8. Further, in some examples, by selecting different convergence parameters, μ, when optimizing the fundamental phase values using Equation 12, the recovered component code powers having the highest value code power(s) can be identified by the receiver 101.

In some examples, Equation 12 may be initialized by selecting an initial fundamental phase vector value, θ⁽⁰⁾, using the quadrature amplitude modulation (QAM) model as disclosed in Equations 9 and 11 above and using parameter values determined using Equations 12, 13, 14, 15, 16, 17, 18 and/or 19, for example. Specifically, in some examples, the Gauss-Newton algorithm of Equation 12 is derivable from derivatives of ĥ_(k)(θ), k=1, . . . , N, as shown in Equation 15, where Equation 15 is evaluated at fundamental phase values that are derived by the optimizer 104 using Equation 16 and Equation 17 and where ∘ represents the Hadamard product and

$\frac{\partial{\hat{g}\left( \theta_{\mu} \right)}}{\partial\theta_{\mu}} = {\frac{1}{N}{\sum\limits_{k = 1}^{N}\;{\frac{\partial{{\hat{f}}_{k}\left( \theta_{\mu} \right)}}{\partial\theta_{\mu}}.}}}$

In this example, the entries of Equation 13 are specified by Equation 14. Referring to Equation 15, Ĥ_(k)(θ_(μ)) is the derivative of ĥ_(k)(θ_(μ)) with respect to θ_(μ) and the optimizer 104 uses Equation 15 to determine the p^(th) iteration of the example Gauss-Newton algorithm given by Equation 12.

Equation 16 represents a quarter code power equation, where {circumflex over (b)}_(k) is constructed from specific rows of b_(k) such that the selected rows correspond to fundamental phases contained by the constellation, ϕ. Equation 17 represents the derivative of {circumflex over (f)}_(k)(θ_(μ)) with respect to the fundamental phase vector θ_(μ), which is used in Equation 15. Equation 18 represents the matrix inverse at iteration p determined using singular value decomposition. Referring to Equation 18, in this example, Û⁺, {circumflex over (Σ)}⁺, {circumflex over (V)}⁺ are determined from the singular value decomposition of [Ĥ_(μ) ^((p))]^(T)Ĥ_(μ) ^((p)), where the matrix Ĥ_(μ) ^((p)) is represented by Equation 19.

$\begin{matrix} {\theta_{\mu}^{(p)} = {\theta_{\mu}^{({p - 1})} + {\left( {1 + \mu} \right){{\hat{L}}^{(p)}\left\lbrack {\hat{H}}^{(p)} \right\rbrack}^{T}\left\{ {{\hat{h}\left\lbrack \theta_{\mu}^{({p - 1})} \right\rbrack} - 1_{N \times 1}} \right\}}}} & {{Equation}\mspace{14mu} 12} \\ {\mspace{79mu}{{\hat{h}\left\lbrack \theta_{\mu}^{({p - 1})} \right\rbrack}\overset{\Delta}{=}\begin{bmatrix} {{\hat{h}}_{1}\left( \theta_{\mu}^{({p - 1})} \right)} \\ {{\hat{h}}_{2}\left( \theta_{\mu}^{({p - 1})} \right)} \\ \vdots \\ {{\hat{h}}_{N}\left( \theta_{\mu}^{({p - 1})} \right)} \end{bmatrix}}} & {{Equation}\mspace{14mu} 13} \\ {\mspace{79mu}{{{{\hat{h}}_{k}\left( \theta_{\mu}^{({p - 1})} \right)} = {\frac{{\hat{f}}_{k}\left( \theta_{\mu} \right)}{\hat{g}\left( \theta_{\mu} \right)}❘_{\theta_{\mu} = \theta_{\mu}^{({p - 1})}}}},{k = 1},\ldots\mspace{14mu},N}} & {{Equation}\mspace{14mu} 14} \\ {{{{\hat{H}}_{k}\left( \theta_{\mu} \right)} = {\frac{\partial{{\hat{h}}_{k}\left( \theta_{\mu} \right)}}{\partial\theta_{\mu}} = \frac{{\left\lbrack \frac{\partial{{\hat{f}}_{k}\left( \theta_{\mu} \right)}}{\partial\theta_{\mu}} \right\rbrack{\hat{g}\left( \theta_{\mu} \right)}} - {{{\hat{f}}_{k}\left( \theta_{\mu} \right)}\left\lbrack \frac{\partial{\hat{g}\left( \theta_{\mu} \right)}}{\partial\theta_{\mu}} \right\rbrack}}{{\hat{g}}^{2}\left( \theta_{\mu} \right)}}},\mspace{79mu}{k = 1},\ldots\mspace{14mu},N} & {{Equation}\mspace{14mu} 15} \\ {{{{\frac{A}{2^{N}}{\hat{b}}_{k}^{T}{c\left( \theta_{\mu} \right)}\cos\;\varphi_{k}} + {j\frac{A}{2^{N}}{\hat{b}}_{k}^{T}{s\left( \theta_{\mu} \right)}\sin\;\varphi_{k}}} = {\frac{\sqrt{P_{k}}}{4}e^{j\;{\varphi\;}_{k}}}},\mspace{79mu}{k = 1},\ldots\mspace{14mu},N} & {{Equation}\mspace{14mu} 16} \\ {\mspace{79mu}{{\frac{\partial{{\hat{f}}_{k}\left( \theta_{\mu} \right)}}{\partial\theta_{\mu}} = \frac{\begin{matrix} {{\left\lbrack {{\hat{b}}_{k}^{T}{s\left( \theta_{\mu} \right)}\sin\;\varphi_{k}} \right\rbrack\left\{ \frac{\left\lbrack {{\hat{b}}_{k} \circ {c\left( \theta_{\mu} \right)}} \right\rbrack\sin\;\varphi_{k}}{\frac{\sqrt{P_{k}}}{4}} \right\}} -} \\ {\left\lbrack {{\hat{b}}_{k}^{T}{c\left( \theta_{\mu} \right)}\cos\;\varphi_{k}} \right\rbrack\left\{ \frac{\left\lbrack {{\hat{b}}_{k} \circ {s\left( \theta_{\mu} \right)}} \right\rbrack\cos\;\varphi_{k}}{\frac{\sqrt{P_{k}}}{4}} \right\}} \end{matrix}}{\left\{ {\left\lbrack {{\hat{b}}_{k}^{T}{c\left( \theta_{\mu} \right)}\cos\;\varphi_{k}} \right\rbrack^{2} + \left\lbrack {{\hat{b}}_{k}^{T}{s\left( \theta_{\mu} \right)}\sin\;\varphi_{k}} \right\rbrack^{2}} \right\}^{\frac{1}{2}}}},\mspace{79mu}{k = 1},\ldots\mspace{14mu},N}} & {{Equation}\mspace{14mu} 17} \\ {\mspace{79mu}{{\hat{L}}^{(p)}\overset{\Delta}{=}{\hat{U} + {\left\lbrack {\hat{\Sigma}}^{+} \right\rbrack^{- 1}\left\lbrack {\hat{V}}^{+} \right\rbrack}^{T}}}} & {{Equation}\mspace{14mu} 18} \\ {\mspace{79mu}{{\hat{H}}^{({p - 1})}\overset{\Delta}{=}\begin{bmatrix} {{\hat{H}}_{1}^{T}\left( \theta_{\mu}^{({p - 1})} \right)} \\ {{\hat{H}}_{2}^{T}\left( \theta_{\mu}^{({p - 1})} \right)} \\ \vdots \\ {{\hat{H}}_{N}^{T}\left( \theta_{\mu}^{({p - 1})} \right)} \end{bmatrix}}} & {{Equation}\mspace{14mu} 19} \end{matrix}$

To determine if the fundamental phases determined by the optimizer 104 using Equation 12 are sufficiently optimized, the optimizer 104 uses Equation 20. In some examples, data used and/or generated by the optimizer 104 is stored at the data store 103. J[θ ^((p))]<ϵ  Equation 20:

Once the optimizer 104 optimizes the fundamental phases of the first quadrant of the QAM model based on the criteria of, for example, Equation 20, a model reconstructor 106 of the apparatus 100 determines the modulation phases of the second, third and fourth quadrants using a symmetry model of Equation 21. In some examples, the optimizer 104 relates the fundamental phases, θ, and the constellation, ϕ, using the symmetry model of Equation 21. Specifically, in Equation 21, P=[P₁ P₂ . . . P_(N)]^(T) represents code powers, φ=[φ₁φ₂ . . . φ_(N)]^(T) represents channel assignments and S(P, φ) represents a permutation matrix constructed to determine an entry wise ordering (e.g., a desired entry wise ordering) of the phase constellation, ϕ, as a function of the code powers, P, and the code channel assignments, φ. In some examples, each identity matrix, I, and zero vector, 0, of Equation 21 has a dimension

${\left( \frac{2^{N}}{4} \right){x\left( \frac{2^{N}}{4} \right)}\mspace{14mu}{and}\mspace{14mu}\frac{2^{N}}{4}x\; 1},$ respectively.

$\begin{matrix} {\phi = {{S\left( {P,\varphi} \right)}\left( {{\begin{bmatrix} I \\ {- I} \\ {- I} \\ I \end{bmatrix}\theta_{\mu}} + \begin{bmatrix} 0 \\ 0 \\ {\pi\; I} \\ {{- \pi}\; I} \end{bmatrix}} \right)}} & {{Equation}\mspace{14mu} 21} \end{matrix}$

To determine an optimized amplitude having a constant envelope as a closed form function of the optimized modulation phases, the model reconstructor 106 uses Equation 22. In this example, Equation 22 represents a closed form expression of the amplitude, A, as a function of the modulation phase constellation, ϕ, after taking the average of the magnitude functions given in Equation 5 with

${g(\phi)} = {\frac{1}{N}{\sum\limits_{k = 1}^{N}\;{{f_{k}(\phi)}.}}}$

Referring to Equation 22, A*(ϕ) corresponds to the closed form estimator of amplitude as a function of the modulation phase vector, ϕ, and g (ϕ) corresponds to an average magnitude. In some examples, data used and/or generated by the model reconstructor 106 is stored at the data store 103.

$\begin{matrix} {{A^{*}\left( \phi_{\mu} \right)} = \frac{2^{N}}{g\left( \phi_{\mu} \right)}} & {{Equation}\mspace{14mu} 22} \end{matrix}$

In some examples, an example determiner 108 determines a composite code based on the modulation phases of the first, second, third and fourth quadrants. In some examples, an input/output device 110 of the apparatus 100 transmits and/or enables access to component codes contained in the composite codes. In the illustrated example, an input/output device 112 of the receiver 101 accesses the component codes along with an associated code power(s) and stores the accessed data in a data store 114 of the receiver 101. In some such examples, the apparatus 100 is associated with a satellite and/or a transmitter and the receiver 101 is associated with a ground-based receiver.

Based on the convergence parameter selected by the selector 105, the code power recovered by the receiver 101 may have a higher value or a lower value. In operation, to enable the receiver 101 to determine which of the convergence parameters results in the highest value code power recovered at the receiver 101, the selector 105 of the apparatus 100 selects different convergence parameters and the optimizer 104, the model reconstructor 106 and the determiner 108 determine the modulation phases, the amplitudes and the composite code(s) for each of the convergence parameters selected. Once determined, the associated component codes contained in the composite codes can be conveyed to the receiver 101. In the illustrated example, a comparator 116 of the receiver 101 accesses the code powers from the data store 114 associated with the respective ones of the recovered component codes and compares the code powers to identify which code power(s) has the highest value. In the illustrated example, an example identifier 118 identifies the convergence parameter associated with the recovered component code(s) having the highest value and the input/output device 112 conveys and/or otherwise provides the apparatus 100 access to the identified convergence parameter associated with the highest value recovered code power. In some examples, the apparatus 100 uses the identified convergence parameter when determining subsequent modulation phases to enable the receiver 101 to receive component codes having a relatively high component recovered code power.

While an example manner of implementing the apparatus 100 is illustrated in FIG. 1, one or more of the elements, processes and/or devices illustrated in FIG. 1 may be combined, divided, re-arranged, omitted, eliminated and/or implemented in any other way. Further, the example initializer 102, the example data store 103, the example optimizer 104, the example selector 105, the example model reconstructor 106, the example determiner 108, the example input/output device 110, the example input/output device 112, the example data store 114, the example comparator 116, the example identifier 118 and/or, more generally, the example apparatus 100 and/or the example receiver 101 of FIG. 1 may be implemented by hardware, software, firmware and/or any combination of hardware, software and/or firmware. Thus, for example, any of the example initializer 102, the example data store 103, the example optimizer 104, the example selector 105, the example model reconstructor 106, the example determiner 108, the example input/output device 110, the example input/output device 112, the example data store 114, the example comparator 116, the example identifier 118 and/or, more generally, the example apparatus 100 and/or the example receiver 101 of FIG. 1 could be implemented by one or more analog or digital circuit(s), logic circuits, programmable processor(s), application specific integrated circuit(s) (ASIC(s)), programmable logic device(s) (PLD(s)) and/or field programmable logic device(s) (FPLD(s)) including field programmable gate arrays (FPGAs). When reading any of the apparatus or system claims of this patent to cover a purely software and/or firmware implementation, at least one of the example initializer 102, the example data store 103, the example optimizer 104, the example selector 105, the example model reconstructor 106, the example determiner 108, the example input/output device 110, the example input/output device 112, the example data store 114, the example comparator 116, the example identifier 118 and/or, more generally, the example apparatus 100 and/or the example receiver 101 of FIG. 1 is/are hereby expressly defined to include a tangible computer readable storage device or storage disk such as a memory, a digital versatile disk (DVD), a compact disk (CD), a Blu-ray disk, etc. storing the software and/or firmware. Further still, the example apparatus 100 and/or the example receiver 101 may include one or more elements, processes and/or devices in addition to, or instead of, those illustrated, and/or may include more than one of any or all of the illustrated elements, processes and devices.

A flowchart representative of an example method 200 for implementing the apparatus 100 and the receiver 101 of FIG. 1 is shown in FIG. 2. In this example, the method 200 may be implemented using the machine readable instructions that comprise a program for execution by a processor such as the processor 912 shown in the example processor platform 900 discussed below in connection with FIG. 9 and/or a processor such as the processor 1012 shown in the example processor platform 1000 discussed below in connection with FIG. 10. The program may be embodied in software stored on a tangible computer readable storage medium such as a CD-ROM, a floppy disk, a hard drive, a digital versatile disk (DVD), a Blu-ray disk, or a memory associated with the processor 912, 1012, but the entire program and/or parts thereof could alternatively be executed by a device other than the processor 912, 1012 and/or embodied in firmware or dedicated hardware. Further, although the example program is described with reference to the apparatus 100 and the receiver 101 illustrated in FIG. 1, many other methods of implementing the example apparatus 100 and/or the receiver 101 may alternatively be used. For example, the order of execution of the blocks may be changed, and/or some of the blocks described may be changed, eliminated, or combined.

As mentioned above, the example method 200 of FIG. 2 may be implemented using coded instructions (e.g., computer and/or machine readable instructions) stored on a tangible computer readable storage medium such as a hard disk drive, a flash memory, a read-only memory (ROM), a compact disk (CD), a digital versatile disk (DVD), a cache, a random-access memory (RAM) and/or any other storage device or storage disk in which information is stored for any unit duration (e.g., for extended time periods, permanently, for brief instances, for temporarily buffering, and/or for caching of the information). As used herein, the term tangible computer readable storage medium is expressly defined to include any type of computer readable storage device and/or storage disk and to exclude propagating signals and transmission media. As used herein, “tangible computer readable storage medium” and “tangible machine readable storage medium” are used interchangeably. Additionally or alternatively, the example method 200 of FIG. 2 may be implemented using coded instructions (e.g., computer and/or machine readable instructions) stored on a non-transitory computer and/or machine readable medium such as a hard disk drive, a flash memory, a read-only memory, a compact disk, a digital versatile disk, a cache, a random-access memory and/or any other storage device or storage disk in which information is stored for any unit duration (e.g., for extended time periods, permanently, for brief instances, for temporarily buffering, and/or for caching of the information). As used herein, the term non-transitory computer readable medium is expressly defined to include any type of computer readable storage device and/or storage disk and to exclude propagating signals and transmission media. As used herein, when the phrase “at least” is used as the transition term in a preamble of a claim, it is open-ended in the same manner as the term “comprising” is open ended.

The method 200 of FIG. 2 will be described in combination with FIGS. 3 and 4 where FIG. 3 is another flowchart depicting portions of the method 200 of FIG. 2 in more detail and FIG. 4 is a flowchart depicting portions of the method 200 of FIG. 2 in more detail. The method 200 of FIG. 2 may begin with the selector 105 selecting an initial convergence parameter to be used when determining fundamental phases and/or modulation phases (block 202). The initializer 102 initializes the process (block 204). In some examples, initializing the process includes defining a correlation model using Equation 1 and/or obtaining and/or incorporating user-specified component code powers and/or code channel assignments of the component codes into the correlation model using, for example, Equation 2. Additionally or alternatively, in some examples, initializing the process includes defining an objective function using Equations 6 and 7.

The initializer 102 generates a quadrature amplitude modulation (QAM) model (block 206) using, for example, Equation 9. In some examples, the QAM model represents coordinates of a rectangular grid of constellation points in the complex plane as a function of the user-specified code powers and code channel assignments. Using the generated QAM model, the initializer 102 determines initial values of the fundamental phases (block 208) using, for example, Equations 10 and 11. In some examples, the fundamental phases relate to modulation phases that are within the first quadrant. Additionally or alternatively, in some examples, the initializer 102 defines the error magnitude, ϵ, of Equation 20, that is used as an exit criteria for the objective function.

The optimizer 104 then optimizes the fundamental phases (block 210) using, for example, Equation 12. To determine if the determined fundamental phases are sufficiently optimized, the optimizer 104 determines an error magnitude of the determined fundamental phases (block 212) using, for example, the objective function of Equation 20. The optimizer 104 determines if the error magnitude is within a threshold (block 214) using, for example, Equation 20. In some examples, if the determined error magnitude is not equal to or less than a threshold error value, the optimizer 104 updates an iteration index (block 216) prior to revising and/or optimizing the fundamental phase entries during the next iteration.

However, if the determined error magnitude is equal to or less than the threshold error value, the model reconstructor 106 constructs a modulation phase symmetry model based on the optimized fundamental phases (block 218) using, for example, Equation 21. For example, the model reconstructor 106 can determine the modulation phases in the second, third and fourth quadrants using a reflection process and/or a rotation process based on the determined fundamental phases. The model reconstructor 106 determines the optimized amplitude having a constant envelope as a closed form function of the optimized modulation phases (block 220) using, for example, Equation 22.

The determiner 108 determines a composite code(s) based on the modulation phases at the first, second, third and/or fourth quadrants (block 222). In some examples, the composite code(s) include and/or are made up of component codes. The input/output device 110 conveys and/or otherwise provides the receiver 101 access to the component codes contained in the composite code(s) (block 224). The component codes recovered by the input/output device 112 may be stored in the data store 114.

The identifier 118 accesses the component code(s) from the data store 114 and identifies and/or otherwise determines the recovered code power(s) of the component code(s) and associated with the selected convergence parameter (block 226). At block 228, the apparatus 100 and/or the receiver 101 determine whether to select another convergence parameter to determine another fundamental phase(s), modulation phase(s) and/or amplitude(s). In some examples, the apparatus 100 and/or the receiver 101 and, more specifically, the selector 105 may select a threshold number of convergence parameters to enable the component code having the highest associated recovered code power(s) to be identified. In some examples, the threshold number of convergence parameters is two. However, any other number may be selected (e.g., 3, 7, 15, 125, 1000, etc.).

The comparator 116 accesses the recovered code powers associated with the component codes from the data store 114 and compares the recovered code powers (block 228). Based on the comparison, the comparator 116 identifies the recovered code power(s) having the highest value (block 230). The identifier 118 identifies and/or selects the convergence parameter(s) associated with the recovered component code power(s) having the highest value (block 232) and the input/output device 112 conveys and/or otherwise provides the apparatus 100 access to the identified convergence parameter to use for future communications (block 234). At block 236, the processor 812 determines whether or not to end the process of FIG. 2.

To illustrate the symmetry of the grid points contained within each quadrant, FIG. 5 shows the symmetry of QAM grid points (N=4) associated with specific code powers and code channel assignments for the case of N=4. In some examples, the results depicted in FIG. 5 are determined using Equation 9.

FIG. 6 shows a constellation of ϕ⁽⁰⁾ that may be generated based on the results of FIG. 5 and/or Equations 9-11. As shown in FIG. 6, QAM grid points 602 that are contained within the first quadrant are represented by solid dots. In some examples, QAM grid points 604 in the fourth quadrant are determined by reflecting the QAM grid points 602 relative to a real axis. In some examples, QAM grid points 606, 608 in the second and third quadrants, respectively, are determined by rotating the QAM grid points 602, 604 relative to the complex (I-Q) plane. In some examples, the constellation of ϕ⁽⁰⁾ is computed directly from Z_(QAM).

FIG. 7 shows results obtained using the examples disclosed herein. Specifically, reference number 702 shows a phase constellation, ϕ*, with numerical values shown in the left most region, reference number 704 shows a complex correlation in linear domain, reference number 706 shows estimated code powers in logarithmic domain and reference number 708 shows a nonlinear exit criteria.

FIG. 8 shows results obtained using the examples disclosed herein. Specifically, FIG. 8 shows results of iterating the modulation phases where the y-axis 802 represents the modulation phases and the x-axis 804 represents the iterations, for example. In this example, dotted lines 806 represent when the convergence parameter of −0.5 is selected, solid lines represent when the convergence parameter of 0.0 is selected and dashed lines represent when the convergence parameter of 0.5 is selected. As shown by the results, as the number of iterations increase, the respective dotted, solid and dashed lines converge.

FIG. 9 is a block diagram of an example processor platform 900 capable of executing instructions to implement the methods of FIGS. 2-4 and the apparatus 100 of FIG. 1. The processor platform 900 can be, for example, a server, a personal computer, a mobile device (e.g., a cell phone, a smart phone, a tablet such as an iPad), a personal digital assistant (PDA), an Internet appliance, or any other type of computing device.

The processor platform 900 of the illustrated example includes a processor 912. The processor 912 of the illustrated example is hardware. For example, the processor 912 can be implemented by one or more integrated circuits, logic circuits, microprocessors or controllers from any desired family or manufacturer. In this example, the processor 912 implements the initializer 102, the optimizer 104, the selector 105, the model reconstructor 106 and the determiner 108.

The processor 912 of the illustrated example includes a local memory 913 (e.g., a cache). The processor 912 of the illustrated example is in communication with a main memory including a volatile memory 914 and a non-volatile memory 916 via a bus 918. The volatile memory 914 may be implemented by Synchronous Dynamic Random Access Memory (SDRAM), Dynamic Random Access Memory (DRAM), Rambus Dynamic Random Access Memory (RDRAM) and/or any other type of random access memory device. The non-volatile memory 916 may be implemented by flash memory and/or any other desired type of memory device. Access to the main memory 914, 916 is controlled by a memory controller.

The processor platform 900 of the illustrated example also includes an interface circuit 920. The interface circuit 920 may be implemented by any type of interface standard, such as an Ethernet interface, a universal serial bus (USB), and/or a Peripheral Component Interconnect (PCI) express interface.

In the illustrated example, one or more input devices 922 are connected to the interface circuit 920. The input device(s) 922 permit(s) a user to enter data and commands into the processor 912. The input device(s) can be implemented by, for example, an audio sensor, a microphone, a keyboard, a button, a mouse, a touchscreen, a track-pad, a trackball, isopoint and/or a voice recognition system. In this example, the input device(s) 922 implements the input/output device 110 of the apparatus 100.

One or more output devices 924 are also connected to the interface circuit 920 of the illustrated example. The output devices 924 can be implemented, for example, by display devices (e.g., a light emitting diode (LED), an organic light emitting diode (OLED), a liquid crystal display, a cathode ray tube display (CRT), a touchscreen, a tactile output device, a light emitting diode (LED), a printer and/or speakers). The interface circuit 920 of the illustrated example, thus, typically includes a graphics driver card, a graphics driver chip or a graphics driver processor. In this example, the output device(s) 924 implements the input/output device 110 of the apparatus 100.

The interface circuit 920 of the illustrated example also includes a communication device such as a transmitter, a receiver, a transceiver, a modem and/or network interface card to facilitate exchange of data with external machines (e.g., computing devices of any kind) via a network 926 (e.g., an Ethernet connection, a digital subscriber line (DSL), a telephone line, coaxial cable, a cellular telephone system, etc.).

The processor platform 900 of the illustrated example also includes one or more mass storage devices 928 for storing software and/or data. Examples of such mass storage devices 928 include floppy disk drives, hard drive disks, compact disk drives, Blu-ray disk drives, redundant array of independent disks (RAID) systems, and digital versatile disk (DVD) drives. In this example, the mass storage device 928 implements the data store 103.

Coded instructions 932 to implement the methods of FIGS. 2-4 may be stored in the mass storage device 928, in the volatile memory 914, in the non-volatile memory 916, and/or on a removable tangible computer readable storage medium such as a CD or DVD.

FIG. 10 is a block diagram of an example processor platform 1000 capable of executing instructions to implement the methods of FIGS. 2-4 and the receiver 101 of FIG. 1. The processor platform 1000 can be, for example, a server, a personal computer, a mobile device (e.g., a cell phone, a smart phone, a tablet such as an iPad), a personal digital assistant (PDA), an Internet appliance, or any other type of computing device.

The processor platform 1000 of the illustrated example includes a processor 1012. The processor 1012 of the illustrated example is hardware. For example, the processor 1012 can be implemented by one or more integrated circuits, logic circuits, microprocessors or controllers from any desired family or manufacturer. In this example, the processor 1012 implements the comparator 116 and the identifier 118.

The processor 1012 of the illustrated example includes a local memory 1013 (e.g., a cache). The processor 1012 of the illustrated example is in communication with a main memory including a volatile memory 1014 and a non-volatile memory 1016 via a bus 1018. The volatile memory 1014 may be implemented by Synchronous Dynamic Random Access Memory (SDRAM), Dynamic Random Access Memory (DRAM), Rambus Dynamic Random Access Memory (RDRAM) and/or any other type of random access memory device. The non-volatile memory 1016 may be implemented by flash memory and/or any other desired type of memory device. Access to the main memory 1014, 1016 is controlled by a memory controller.

The processor platform 1000 of the illustrated example also includes an interface circuit 1020. The interface circuit 1020 may be implemented by any type of interface standard, such as an Ethernet interface, a universal serial bus (USB), and/or a PCI express interface.

In the illustrated example, one or more input devices 1022 are connected to the interface circuit 1020. The input device(s) 1022 permit(s) a user to enter data and commands into the processor 1012. The input device(s) can be implemented by, for example, an audio sensor, a microphone, a keyboard, a button, a mouse, a touchscreen, a track-pad, a trackball, isopoint and/or a voice recognition system. In this example, the input device(s) 1022 implements the input/output device 112 of the receiver 101.

One or more output devices 1024 are also connected to the interface circuit 1020 of the illustrated example. The output devices 1024 can be implemented, for example, by display devices (e.g., a light emitting diode (LED), an organic light emitting diode (OLED), a liquid crystal display, a cathode ray tube display (CRT), a touchscreen, a tactile output device, a light emitting diode (LED), a printer and/or speakers). The interface circuit 1020 of the illustrated example, thus, typically includes a graphics driver card, a graphics driver chip or a graphics driver processor. In this example, the output device(s) 1024 implements the input/output device 112 of the receiver 101.

The interface circuit 1020 of the illustrated example also includes a communication device such as a transmitter, a receiver, a transceiver, a modem and/or network interface card to facilitate exchange of data with external machines (e.g., computing devices of any kind) via a network 1026 (e.g., an Ethernet connection, a digital subscriber line (DSL), a telephone line, coaxial cable, a cellular telephone system, etc.).

The processor platform 1000 of the illustrated example also includes one or more mass storage devices 1028 for storing software and/or data. Examples of such mass storage devices 1028 include floppy disk drives, hard drive disks, compact disk drives, Blu-ray disk drives, RAID systems, and digital versatile disk (DVD) drives. In this example, the mass storage device 1028 implements the data store 114.

Coded instructions 1032 to implement the methods of FIGS. 2-4 may be stored in the mass storage device 1028, in the volatile memory 1014, in the non-volatile memory 1016, and/or on a removable tangible computer readable storage medium such as a CD or DVD.

From the foregoing, it will appreciated that the above disclosed methods, apparatus and articles of manufacture relate to signal combining a constant envelope and modulation phase constellation for transmitting multiple signals onto the same carrier. In some examples, the signal is optimized for transmission while providing less complex hardware and/or power efficient implementations.

In some examples, the modulation phase constellation is generated using fundamental phases (e.g., first quadrant modulation phases) that reduce the dimension of the search problem. In some examples, an example Gauss-Newton approach is initialized by the modulation phases of a quadrature amplitude modulation (QAM) scheme that uses singular value decomposition (SVD) when determining the fundamental phases and/or the fundamental phase vector. In some examples, an example symmetry model is used to relate the determined fundamental phases and/or the fundamental phase vector to the complete phase constellation. In some examples, a constant amplitude in closed form can be determined based on the optimized fundamental phases.

In some examples, an example search algorithm determines an optimal amplitude and/or optimal modulation phases for a signal combining technique including binary spreading codes. In some examples, the optimal amplitude and/or the optimal modulation phases are determined using an example objective function which, in some examples, does not include an amplitude. The examples disclosed herein iteratively search for a quarter of the modulation phases (e.g., the fundamental phases) and then construct and/or determine the remaining modulation phases and/or the amplitude after the quarter of the modulation phases are optimized. In some examples, expressions for elements in a Jacobian matrix are used without approximation. In some examples, the optimized amplitude is provided in closed form as a function of the optimized modulation phases.

In some examples, the examples disclosed herein can be used in connection with GPS Payload solution & programs using Solid State Power Amplifiers (SSPAs). In some examples, the examples disclosed herein can be incorporated into a baseline system design.

In some examples, the examples disclosed herein are associated with transmitters and/or satellites that combine binary spreading codes (e.g., PRN sequences and/or pseudo random number sequences). The transmitters and/or satellites may be used for navigation purposes, ranging purposes, communications purposes, surveillance purposes, etc. In some examples, the examples disclosed herein can be used in connection with GPS satellites, binary signal combining and/or in connection with solid state power amplifiers (SSPAs).

In some examples, an example method includes defining a correlation model for a modulation phase constellation for constant envelope transmission of a plurality of binary codes; and iteratively determining a fundamental phase vector that contains optimized modulation phases for the correlation model. In some examples, the transmission of the plurality of binary codes includes transmitting the plurality of binary orthogonal codes on I and Q channels. In some examples, the correlation model includes user-specified component code powers for the plurality of binary codes. In some examples, an initial phase constellation is determined using a QAM model. In some examples, the correlation model includes defining amplitude as a function of the optimized modulation phase constellation. In some examples, optimizing the fundamental phases includes exiting an iteration based on exit criteria. In some examples, iteratively determining fundamental phases includes determining a quarter of the modulation phases and using a symmetry model to determine a modulation phase constellation. In some examples, binary codes are combined based on the modulation phase constellation. In some examples, the combined codes are transmitted.

The examples disclosed herein relate to determining an optimal amplitude and optimal modulation phases of a signal combining technique including binary spreading codes. In some examples, an example objective function is defined by defining a correlation model for modulation phase constellation for constant envelope transmission of a plurality of binary orthogonal codes on I channel and Q channel; incorporating user-specified component code powers and user-specified code channel assignment into the correlation model; defining amplitude as a function of optimized modulation phases; and defining an objective function by incorporating modulation phases & user-specified component code powers, user-specified code channel assignment and solving for the optimized phase constellation.

In some examples, an initial choice for a phase constellation is determined using a QAM model. In some examples, the remainder of modulation phase constellation is determined by determining and/or optimizing a fundamental phase vector; using a modulation phase symmetry model; iteratively searching for a quarter of modulation phases using the initial phase constellation choice from the QAM model; optimizing the determined fundamental phases using an example Gauss-Newton method; and exiting the iteration with when exit criteria is met.

In some examples, the remaining modulation phase and amplitude are constructed after the quarter of modulation phases are optimized; the elements within a Jacobian matrix are used without approximation; the amplitude is determined in closed form as a function of the optimized modulation phases; and both amplitude and optimal modulation phases are formed and/or transmitted as a composite signal.

As set forth herein, an example method includes determining initial values of modulation phases in a first quadrant, the modulation phases associated with binary codes to be transmitted; and optimizing the initial values to second values to enable a product of an objective function to be within a threshold value. In some examples, the method includes determining third values of modulation phases in a fourth quadrant based on the second values. In some examples, the third values are determined by reflecting the second values relative to an axis. In some examples, the method includes determining fourth values of modulation phases in a second quadrant and fifth values of modulation phases in a third quadrant, the fourth and fifth values based on the second values.

In some examples, the fourth and fifth values are determined by rotating the second and third values relative to axes. In some examples the method includes determining an amplitude based the second, third, fourth, and fifth values. In some examples, the amplitude is associated with a constant envelope. In some examples, the method includes obtaining code powers of the binary codes. In some examples, the objective function is based on the code powers. In some examples, the method includes using a symmetry model to determine values of modulation phases in a second quadrant, a third quadrant, and a fourth quadrant based on the second values.

In some examples, the method includes combining the binary codes based on the modulation phases. In some examples, the method includes transmitting the binary codes. In some examples, optimizing the initial values includes not optimizing modulation phases in a second quadrant, a third quadrant, and a fourth quadrant.

An example apparatus includes a database to store initial values of modulation phases in a first quadrant, the modulation phases associated with binary codes to be transmitted; and a processor, to: based on the initial values obtained from the database, optimize the initial values to second values to enable a product of an objective function to be within a threshold value.

In some examples, the processor is to determine third values of modulation phases in a fourth quadrant based on the second values. In some examples, the processor is to determine fourth values of modulation phases in a second quadrant and fifth values of modulation phases in a third quadrant, the fourth and fifth values based on the second values. In some examples, the processor is to determine an amplitude based the second, third, fourth, and fifth values.

An example tangible machine-readable storage medium comprising instructions which, when executed, cause a machine to at least: determine initial values of modulation phases in a first quadrant, the modulation phases associated with binary codes to be transmitted; and optimize the initial values to second values to enable a product of an objective function to be within a threshold value. In some examples, the instructions which, when executed, cause a machine to at least determine third values of modulation phases in a fourth quadrant based on the second values. In some examples, the instructions which, when executed, cause a machine to at least determine fourth values of modulation phases in a second quadrant and fifth values of modulation phases in a third quadrant, the fourth and fifth values based on the second values.

An example method includes determining initial values of modulation phases in a first quadrant using an initializer, the initial values of the modulation phases representing approximately one quarter of a total of the modulation phases in the first quadrant, a second quadrant, a third quadrant, and a fourth quadrant, when determining the initial values of the modulation phases in the first quadrant, values of modulation phases in the second quadrant, the third quadrant, and the fourth quadrant are not being initially determined, the modulation phases associated with binary codes to be transmitted; and optimizing the initial values to second values of the modulation phases to enable a product of an objective function to be within a threshold value using an optimizer, at least one of the initializer or the optimizer being implemented by a logic circuit.

In some examples, the example method includes determining third values of modulation phases in a fourth quadrant based on the second values. In some examples, the third values are determined by reflecting the second values relative to an axis. In some examples, the method includes determining fourth values of modulation phases in the second quadrant and fifth values of modulation phases in the third quadrant, the fourth values and the fifth values based on the second values. In some examples, the fourth values and the fifth values are determined by rotating the second values and the third values relative to axes. In some examples, the method includes determining an amplitude based on the second values, the third values, the fourth values, and the fifth values.

In some examples, the amplitude is associated with a constant envelope. In some examples, the method includes obtaining code powers of the binary codes. In some examples, the objective function is based on the code powers. In some examples, the method includes using a symmetry model to determine values of modulation phases in the second quadrant, the third quadrant, and the fourth quadrant based on the second values. In some examples, the method includes combining the binary codes based on the modulation phases. In some examples, the method includes transmitting the binary codes.

In some examples, optimizing the initial values includes not optimizing modulation phases in the second quadrant, the third quadrant, and the fourth quadrant. In some examples, determining the initial values of the modulation phases in the first quadrant includes determining the initial values of the modulation phases using a quadrature amplitude modulation model. In some examples, the quadrature amplitude modulation model represents coordinates of a rectangular grid of constellation points in a complex plane as a function of code powers and code channel assignments. In some examples, the method includes determining the modulation phases in the second quadrant, the third quadrant, and the fourth quadrant using at least one of a reflection process or a rotation process based on the second values.

An example apparatus includes a database to store initial values of modulation phases in a first quadrant, the modulation phases associated with binary codes to be transmitted, the initial values of the modulation phases representing approximately one quarter of a total of the modulation phases in the first quadrant, a second quadrant, a third quadrant, and a fourth quadrant, the initial values of the modulation phases in the first quadrant not including values of modulation phases in the second quadrant, the third quadrant, and the fourth quadrant; and a processor including an optimizer implemented with a logic circuit, the optimizer is to: based on the initial values obtained from the database, optimize the initial values to second values of the modulation phases to enable a product of an objective function to be within a threshold value.

In some examples, the processor is to determine third values of modulation phases in the fourth quadrant based on the second values. In some examples, the processor is to determine fourth values of modulation phases in the second quadrant and fifth values of modulation phases in the third quadrant, the fourth values and the fifth values based on the second values. In some examples, the processor is to determine an amplitude based on the second values, the third values, the fourth values, and the fifth values.

An example tangible machine-readable storage medium comprising instructions which, when executed, cause a machine to at least: determine initial values of modulation phases in a first quadrant, the modulation phases associated with binary codes to be transmitted, the initial values of the modulation phases representing approximately one quarter of a total of the modulation phases in the first quadrant, a second quadrant, a third quadrant, and a fourth quadrant, when determining the initial values of the modulation phases in the first quadrant, values of modulation phases in the second quadrant, the third quadrant, and the fourth quadrant are not being initially determined; and optimize the initial values to second values of the modulation phases to enable a product of an objective function to be within a threshold value.

In some examples, the tangible machine-readable storage medium includes instructions which, when executed, cause a machine to at least determine third values of modulation phases in the fourth quadrant based on the second values. In some examples, the tangible machine-readable storage medium includes instructions which, when executed, cause a machine to at least determine fourth values of modulation phases in the second quadrant and fifth values of modulation phases in the third quadrant, the fourth values and the fifth values based on the second values.

Although certain example methods, apparatus and articles of manufacture have been disclosed herein, the scope of coverage of this patent is not limited thereto. On the contrary, this patent covers all methods, apparatus and articles of manufacture fairly falling within the scope of the claims of this patent. 

What is claimed is:
 1. A method, comprising: determining, by executing an instruction with at least one processor, initial values of modulation phases in a first quadrant, the modulation phases associated with binary codes to be transmitted; optimizing, by executing an instruction with at least one processor, the initial values to second values of the modulation phases in the first quadrant to enable a product of an objective function to be within a threshold value; and generating, by executing an instruction with at least one processor, a modulation phase symmetry model for determining modulation phases in a quadrant different from the first quadrant, the modulation phase symmetry model to be generated based on the second values of the modulation phases in the first quadrant.
 2. The method of claim 1, further including determining the binary codes based on the second values and providing a receiver access to the binary codes.
 3. The method of claim 1, wherein the generating of the modulation phase symmetry model includes determining third values in a fourth quadrant based on the second values.
 4. The method of claim 3, wherein the third values are determined by reflecting the second values relative to an axis.
 5. The method of claim 3, wherein the generating of the modulation phase symmetry model includes determining fourth values of modulation phases in a second quadrant and fifth values of modulation phases in a third quadrant, the fourth values and the fifth values based on the second values of the modulation phases in the first quadrant.
 6. The method of claim 5, wherein the fourth values and the fifth values are determined by rotating the second values and the third values relative to axes.
 7. The method of claim 5, further including determining an amplitude based the second values, the third values, the fourth values, and the fifth values.
 8. The method of claim 7, wherein the amplitude is associated with a constant envelope.
 9. The method of claim 8, wherein the objective function is based on a first code power or a second code power.
 10. The method of claim 1, wherein the generating the modulation phase symmetry model includes using a symmetry model to determine values of modulation phases in a second quadrant, a third quadrant, and a fourth quadrant based on the second values of the modulation phases in the first quadrant.
 11. The method of claim 1, further including combining the binary codes based on the modulation phases.
 12. The method of claim 1, wherein optimizing the initial values includes not optimizing modulation phases in a second quadrant, a third quadrant, and a fourth quadrant.
 13. The method of claim 1, wherein determining the initial values of the modulation phases in the first quadrant includes using a quadrature amplitude modulation model, the quadrature amplitude modulation model being associated with coordinates of a rectangular grid in a complex plane as a function of code powers and code channel assignments.
 14. A method, comprising: determining, by executing an instruction with at least one processor, initial values of modulation phases in a first quadrant, the modulation phases associated with binary codes to be transmitted; optimizing, by executing an instruction with at least one processor, the initial values to second values of the modulation phases in the first quadrant to enable a product of an objective function to be within a threshold value; generating, by executing an instruction with at least one processor, a modulation phase symmetry model based on the second values of the modulation phases in the first quadrant determining the binary codes based on the second values and providing a receiver access to the binary codes; and determining a code power for at least one of the binary codes at the receiver, the code power associated with a convergence parameter used when determining the initial values and optimizing the initial values to the second values.
 15. The method of claim 14, wherein the initial values are first initial values and the convergence parameter is a first convergence parameter, further including determining second initial values of the modulation phases in the first quadrant based on a second convergence parameter; and optimizing the second initial values to third values of the modulation phases to enable a product of the objective function to be within the threshold value.
 16. The method of claim 15, wherein the binary codes are first binary codes, further including determining second binary codes based on the third values and providing the receiver access to the second binary codes.
 17. The method of claim 16, wherein the code power is a first code power, further including determining a second code power for at least one of the second binary codes at the receiver.
 18. The method of claim 17, further including comparing the first code power to the second code power to identify which of the first code power and the second code power has a higher value.
 19. The method of claim 18, further including identifying the second code power as having the higher value and determining subsequent modulation phases using the second convergence parameter.
 20. An apparatus, comprising: a database to store initial values of modulation phases in a first quadrant, the modulation phases associated with binary codes to be transmitted; and a processor, to: based on the initial values obtained from the database, optimize the initial values to second values of the modulation phases in the first quadrant to enable a product of an objective function to be within a threshold value; and generate a modulation phase symmetry model for determining modulation phases in a quadrant different from the first quadrant, the modulation phase symmetry model to be generated based on the second values of the modulation phases in the first quadrant.
 21. A tangible machine-readable storage medium comprising instructions which, when executed, cause a machine to at least: determine initial values of modulation phases in a first quadrant, the modulation phases associated with binary codes to be transmitted; optimize the initial values to second values of the modulation phases in the first quadrant to enable a product of an objective function to be within a threshold value; and generate a modulation phase symmetry model for determining modulation phases in a quadrant different from the first quadrant, the modulation phase symmetry model to be generated based on the second values of the modulation phases in the first quadrant. 